Internet advertising system

ABSTRACT

A system for providing advertisements from a central server to viewers who access web sites. The central server stores both advertisements which are to be displayed and an information data base. The data base includes information about viewers, information about the characteristics of particular web sites and other information relevant to which advertisements should be displayed for particular viewers. Proposed bids submitted by different advertisers are evaluated in real time in order to determine which particular advertisement will be displayed to a viewer. Each proposed bid can specify a price or amount that the advertiser is willing to pay for the opportunity to display an advertisement (a) to a viewer who has a particular set of characteristics and (b) on a web site and web page that meets a particular set of criteria. The system includes (a) a web server system which has data bases stored therein, (b) bidding agents which compare the characteristics of view-ops to the specifications in proposed bids and which submit bids as appropriate, and (c) bid selection logic which decides which bid to accept for each particular view-op.

FIELD OF THE INVENTION

[0001] The present invention relates to computer networks and moreparticularly to a method and system for selecting and then displayingadvertisements on Internet World Wide Web sites.

BACKGROUND OF THE INVENTION

[0002] Many web sites on the Internet World Wide Web regularly displayadvertisements. The particular advertisement that is displayed when aviewer accesses a web site can either be stored locally on the web siteor it can be stored on a central server. (As used herein the term viewerrefers to an individual who views or looks at a web page using a programsuch as a web browser).

[0003] The Hyper Text Transfer Protocol (HTTP) and the Hyper Text MarkUp Language (HTML) provide a mechanism whereby a web page caneasily-reference material located on a remote server. The HTTPmechanisms for referencing and obtaining material from a remote serveris useful in providing advertising material for display to viewers.There are commercially available systems which provide advertisingmaterial for web sites from a central server and various web pages haveHTML references to this central server. With such an arrangement, when aviewer accesses a web page which has an appropriate HTML reference, theviewer sees advertisement that is provided by the central server.

[0004] Using standard HTTP facilities it is possible to track when aparticular viewer accesses a web site and thus it is possible to compilea data base which in essence provides a profile of the sites aparticular viewer has accessed. Furthermore, it is known that particularcategories of viewers generally access particular types of web sites.The capabilities inherent in the World Wide Web for tracking the sitesthat a viewer has seen provides a mechanism for targeting particularadvertisements to particular categories of viewers.

[0005] There are prior art systems which provide advertisements from acentral server that has a data base of information concerningcharacteristics of viewers. A data base of viewer information can becompiled from a variety of sources including the information about aviewer which is available when a viewer accesses a server. In such priorart systems, the particular advertisement which is displayed when aparticular viewer accesses a web site is determined by thecharacteristics of the viewer as provided by the data base of viewerinformation and by other information such as the characteristics of theweb site which the viewer has accessed. Using such systems advertiserscan target advertisements by criteria such as web site category,geographic location of the viewer, the operating system of the viewer'scomputer, the type of browser which the viewer is using, the Internetdomain type of the viewer, etc.

[0006] Advertisers who use such prior art systems must specify inadvance, the targeting-criteria they want to use for theiradvertisements. The central server then provides advertisements toviewers based upon (a) the targeting criteria provided by theadvertisers (b) the information which the central server has in its database concerning the particular viewer, (c) information about the website that has been accessed by the viewer and (d) other informationavailable to the central server such as the time of day.

SUMMARY OF THE PRESENT INVENTION

[0007] The present invention provides an improved method and system forproviding advertisements from a central server to viewers who access websites. With the present invention the central server system stores bothadvertisements which are to be displayed and an information database.The data base includes information about viewers, information about thecharacteristics of particular web sites and other information relevantto which advertisements should be displayed for particular viewers. Incontrast to the prior art systems, the present invention evaluates, inreal time, bids submitted by different advertisers in order to determinewhich particular advertisement will be displayed to a viewer.

[0008] The fact that a viewer has accessed a web page which has an HTMLreference to the advertising server of the present invention, is hereinreferred to as a view opportunity or view-op. The characteristics ofeach view-op include the characteristics of the particular web site andweb page being accessed and the characteristics of the viewer includingdemographic information about the viewer and information as to whatother sites this viewer has accessed in various periods of time.

[0009] With the present invention each advertiser provides one or more“proposed bids” which specify how much the advertiser is willing to payfor displaying a particular advertisement in response to a view-op withcertain characteristics. Each proposed bid can specify a price or amountthat the advertiser is willing to pay for the opportunity to display anadvertisement (a) to a viewer who has a particular set ofcharacteristics and (b) on a web site and web page that meets aparticular set of criteria. Each proposed bid can be dependent upon orrequire satisfaction of various criteria which must be met in order fora bid of a particular amount to be submitted. For example an advertisermight specify that the first one thousand times that view-ops meetingcertain criteria occurs, a bid of five cents will be submitted and eachtime thereafter that a view-op meeting the criteria occurs a bid of onecent will be submitted. The amount bid for a view-op can be dependent onas many criteria as the advertiser cares to specify. Another example isthat an advertiser might bid ten cents if the view-op was by a viewerwho had recently visited a particular web page and one cent for the sameview-op if the viewer had not recently visited the particular web page.Yet another example of a parameter which could be specified in aproposed bid is the “click-through” rate for the particular site wherethe view-op originated. The click-through rate is the rate at whichviewers click on an advertisement to access the advertiser's web site.Thus, the bidding parameters can either be simple or complex.

[0010] The present invention includes (a) a web server system which hasdata bases stored therein, (b) bidding agents which compare thecharacteristics of view-ops to the specifications in proposed bids andwhich submit bids as appropriate, and (c) bid selection logic whichdecides which bid to accept for each particular view-op.

[0011] With the present invention, when a view-op arises, the biddingagents evaluate the characteristics of the view-op compared to thespecifications in proposed bids and the bidding agents submit bids tothe bid selection logic where appropriate. Next, the bid selection logicselects the highest bid from the various available bids and theadvertisement which is specified in the highest bid is displayed. Thenovel aspect of the present invention is the organization, operation andinteraction between the bidding agents, the server which providesinformation to the bidding agents, the bid selection logic and theassociated mechanisms for presenting the advertisements.

[0012] The present invention provides a very flexible system wherebyadvertisers can minimize cost and maximize effectiveness while the ownerof web sites can obtain the highest possible revenue for displayingadvertisements on their site.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 is a simplified system block diagram of a preferredembodiment of the invention.

[0014]FIGS. 2A and 2B are simplified block flow diagrams of theoperation of the invention.

[0015]FIG. 3 is an overall block diagram of a preferred embodiment ofthe invention.

[0016]FIG. 4 is a diagram showing the organization of various tableswhich are utilized by the present invention.

[0017]FIGS. 5A to 5C are flow diagrams showing how each view-op isevaluated or tested to determine if a bid should be submitted.

[0018]FIGS. 6A to 6E are flow diagrams showing the operation of thesystem.

[0019]FIG. 7 is a block diagram of an alternate embodiment of theinvention.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

[0020] In order to explain the principles of the invention, an overallsimplified diagram of a first preferred embodiment of the invention isshown in FIG. 1 and a simplified block diagram of the operation of thesystem is shown in FIGS. 2A and 2B. After the principles of theinvention have been explained with reference to FIGS. 1 and 2, the firstpreferred embodiment of the invention is described with reference toFIGS. 3 to 6.

[0021] As shown in FIG. 1, a human viewer 10 utilizes a client browser11 to access a web page 12 on a web site 14. The web page 12 istransmitted to browser 11 in a conventional manner. Web page 12 includesHTML reference to a file (i.e. an advertisement) located on anadvertising web server system 16. The client browser 11 has what isknown in the art as a “cookie” 11A which provides information frombrowser 11 to the web server system 16. The client browser 11, thecookie 11A, the web site 14 and the web page 12 are all conventional andin widespread use. For example, the client browser 11 could be one ofthe commercially available web browsers, for example, the commerciallyavailable and widely used web browser marketed by NetscapeCommunications Corp. under the trademark “Netscape Navigator”. The website 14 and the web page 12 could be any of the thousands of web sitesand web pages which are part of the World Wide Web and which have HTMLreferences to advertisements which are located on a remote server.

[0022] Web page 12 includes an HTML reference to an advertisement storedon advertising web server system 16. Each time client browser 11displays web page 12, the human viewer 10 will see an advertisementwhich is provided by advertising web server system 16. Such HTMLreferences are in widespread use and they are implemented usingconventional HTML tags. Advertising web server system 16 includes a database of advertisements 16A, a data base of viewer information 16B, and abid selection logic 16C. The bid selection logic 16C receives bids frombidding agents 30A to 30Z which in turn receive information concerningproposed bids from bid input system 18. For purposes of illustrationonly three identical bidding agents 30A, 30B and 30Z are specificallyshown. The reference number 30 will be used to refer to a typicalbidding agent. It should be understood that the system could include anynumber of bidding agents. For example, a system could include severalthousand bidding agents 30. Bid input system 18 provides bidding agents30 with proposed bids which specify how much should be bid for view-opswith particular characteristics. Each bidding agents 30 evaluates eachview-op to determine if the view-op meets the criteria specified in aparticular proposed bid and if so how much should be bid.

[0023] Each bidding agent 30 evaluates a view-op with respect to oneproposed bid to determine if a bid should be submitted. Each proposedbid includes a list of parameters which specify the particular type ofviewer which the advertiser wants to reach. For example, a proposed bidmight specify that the advertiser is willing to pay five cents for theopportunity to place an advertisement on a web page which is accessed bya viewer who has accessed three financial web pages and an automotiveweb page within the last week.

[0024] In general the system includes one bidding agent 30 for eachproposed bid (see later discussion about multi-level bids). Eachadvertiser would have an associated bidding agent 30 for each adcampaign the advertiser wants to conduct. Advertisers submit proposedbids to their associated bidding agents for evaluation against view-ops.Bidding agents 30 can be simple or complex and if desired they can havethe ability to evaluate more than one proposed bid to determine what bidshould be submitted to the bid selection logic 16C.

[0025] When a view-op presents itself (i.e. when viewer 10 accesses aweb page 11 which contains an HTML reference to server system 16) theadvertising web server system 16 performs four operations:

[0026] (1) It updates the information about the viewer which is in database 16B.

[0027] (2) It sends information concerning the view-op to the biddingagents 30. The information sent includes information that the serversystem 16 received from browser 11 and information in data base 16B.Bidding agents 30 in turn decide which bids to submit to bid selectionlogic 16C.

[0028] (3) It compares various bids received from bidding agents 30 inorder to determine which advertisement to display.

[0029] (4) It sends the appropriate advertisement from data base 16A tobrowser 11.

[0030] The operations performed by advertising web server system 16 areshown in FIGS. 2A and 2B. FIG. 2A shows how server system 16 uses theinformation from cookie 11A to update the data base of viewerinformation 16B to reflect the fact that this particular viewer hasaccessed this particular web page. The operations proceed as shown byblocks 201 to 203. Block 201 indicates that a viewer has selected webpage 12 and that the selected web page has been transmitted to theviewer's browser 11. As indicated by block 202, web page 12 has an HTMLreference to a file on server system 16 using conventional HTMLtechniques. Block 203 indicates that the server 16 then obtains datafrom cookie 11A to update the data base of viewer information 16B.

[0031] When a viewer 10 accesses web page 12, which has an HTMLreference to server system 16, the present invention determines whichadvertisement from data base 16A to present to the viewer. The manner inwhich the system performs these operations is shown by block diagram 2B.For example, one advertiser might have submitted a proposed bid tobidding agent 30A which specified that he is willing to pay five centsfor displaying an ad to a viewer who has accessed at least threefinancially oriented data bases within the last week. Another advertisermight have submitted a proposed bid to bidding agent 30B specifying thathe is willing to pay six cents for displaying an advertisement to aviewer that has accessed at least three financially oriented data baseswith the last five days. When a view-op occurs which is initiated by aviewer 10 who has accessed three financially oriented data bases in thelast five days, bidding agents 30A and 30B would determine that theparticular view-op satisfies the criteria specified by both advertisers.Both bids would be submitted to bid selection logic 16C and bidselection logic 16C would then select the highest bid and theadvertisement specified by that advertiser would be displayed to theviewer. The criteria specified by the advertisers may be much morecomplex and involve many more parameters than those given in the simpleexample specified above. However, notwithstanding the complexity of theproposed bids and the number of parameters specified in each proposedbid, the operations performed by bidding agents 30 and by bid selectionlogic 16C are as explained in the above simple example.

[0032] As shown in FIG. 2B, a cycle of operation begins (block 210) whena viewer 10 selects a web page 12 which has a HTML reference to webserver system 16, that is, when a view-op occurs. It is noted that thisoccurs in real time and it can take place thousands of times per minute.Block 211 indicates that the web server system 16 sends informationconcerning the view-op and related information in the data base 16B tothe bidding agents 30. The bidding agents 30 compare the informationabout the view-op to the proposed bids that have been submitted byadvertisers. That is, the bidding agents 30 determine if thecharacteristics of the view-op meet the criteria in the proposed bidsand if so they submit bids to bid selection logic 16C (block 213). Asshown by block 214, the bid selection logic 16C compares various bidsand selects the highest bid and therefore an advertisement for display.The appropriate advertisement called for by the winning bid is then sentfrom data base 16A to browser 11 (block 215).

[0033] Block 212 indicates that each advertiser submits proposed bids,each of which includes various parameters which, for example, specifythe type of web page on which the advertiser wants to advertise and anamount, (i.e. the dollar amount) which the advertiser is willing to payfor having a particular advertisement displayed. Details of the variousparamaters which can be included in a proposed bid are explained later.

[0034] In order to understand the power of the present system and itsdifferences from the prior art, it is important to realize that thebidding agents 30 evaluate proposed bids in microseconds, that is, inreal time. The rate at which “hits” on web pages occur (i.e. the rate atwhich viewers access web pages that have HTML reference to server system16) can be in the order of thousands per second. Thus, the evaluation ofproposed bids is performed very quickly in real time. Proposed bids cancontain parameters which specify that a proposed bid will in effectchange in real time. For example a proposed bid might specify that forthe first 1000 matching view-ops, the proposed bid will be five centsand for the next 1000 matching view-ops the proposed bid will be fourcents. The actual submission of proposed bids by advertisers and therate at which advertisers can change their proposed bids is measured inminutes compared to the rate at which the system evaluates proposed bidswhich is in the order of microseconds.

[0035] The operation of the browser 11, the operation of the web server14, and the manner in which web pages produce HTML references to webserver system 16 using the HTTP protocol and HTML mark up language aredescribed in numerous published books such as “HTML Source Book AComplete Guide to HTML” by IAN S. Graham, published by John Wiley andSons (ISBN 0 471-11849-4) or “The Internet Compete Reference” by HarleyHahn and Rick Stout, published by Osborne McGraw-Hill, ISBM 007-881980-6. Numerous other books are also available which describe theHTTP protocol. Such books describe how a browser, such as 11, can accessa web page, such as web page 12, which in turn has an HTML reference toa file (i.e. an advertisement) stored on a server such as advertisingserver system 16.

[0036] A more detailed block diagram of the preferred embodiment of theinvention is shown in FIG. 3. Numerous additions and changes can be madein the preferred embodiment shown in FIG. 3 without departing from thespirit of the invention. As will be explained later with reference toFIG. 7, a number of systems, each identical to the system shown in FIG.3, (and each of which is at a different geographic location) can beinterconnected into a network so as to more efficiently service view-oprequests.

[0037] As shown in FIG. 3, the preferred embodiment is composed of fivemain units, namely, web server 310, view server 320 (servers 310 and 320together comprise the advertising web server system 16 shown in FIG. 1),identical bidding agents 30A, 30B and 30Z, bid input server 18 and logand billing unit 320A. As stated with respect to FIG. 1, a system caninclude any number of bidding agents. A typical system could include athousand or more bidding agents. For clarity of illustration only threebidding agents 30A, 30B and 30Z are specifically shown in FIG. 3.Hereinafter the term bidding agent 30 will refer to one representativebidding agent. It should be understood that there could be many biddingagents 30 in a system.

[0038] Bidding agents 30 evaluate bids to determine if a particularview-op meets the criteria of a particular bid. That is, bidding agents30 compare the specifications in a proposed bid to the characteristicsof a view-op. An example of the comparison process is explained laterwith reference to FIG. 5. Bid selection logic 16C in view server 320determines which advertisement will be displayed, that is, which is thehighest bid for each particular view-op.

[0039] The web client browser 11 accesses web sites (such as site 14)using the conventional HTTP protocol. The present invention begins tofunction when the web page which is accessed by browser 11 contains aconventional Internet HTML reference to web server 310.

[0040] The web server 310 provides an advertisement to web clientbrowser 11 in response to an HTML reference. Such an operation isconventional. The function of the present invention is to determinewhich particular advertisement from data base 16A will be provided inresponse to each HTML reference from web client browser 11 to web server310.

[0041] The web server 310, view server 320, bidding agents 30 and bidinput server 18 can all be implemented by computer programs that are allresident in and executed by one single physical computer. Alternatively,each of the components may be implemented in separate physical computersconnected by a conventional inter-computer network. The decisionconcerning implementation is a single computer or in a group ofinterconnected computers depends upon the cost, capacity and speed ofthe available computers. With respect to the explanation of theoperation of the present invention, it is not relevant as to whether ornot the various components are implemented in a single computer or in anetwork of interconnected computers.

[0042] The web server 310 can be implemented using conventionalcommercially available web server technology. For example, thecommercially available web server marketed under the tradename Zeus canbe used to implement web server 310. The operating system used in webserver 310 is conventional and is not described herein. It could forexample be the conventional Unix operationg system Likewise view server320 and bid input server 18 have a conventional operating system such asthe Unix operating system. The processes and programs described hereinrun as application programs under such a conventional and commerciallyavailable operating system.

[0043] When web server 310 receives an HTTP request or HTML reference (aview-op), it delivers the contents the view-op to the view server 320.View server 320 in turn sends information concerning the view-op tobidding agents 30. Bidding agents 30 in turn evaluate thecharacteristics of the view-op (which includes information supplied byserver 320) against the criteria specified in each proposed bid. If thecharacteristics of a view-op meet the criteria in a proposed bid, abidding agent 30 will submit a bid to view server 320. After receivinginput from bidding agents 30 (that is from all the bidding agents 30that submit bids) the bid selection logic 16C in view server 320 selectsthe highest bid and indicates to web server 310 which advertisementshould be displayed in response to the view-op. In response to the inputfrom view server 320, the web server 310 delivers the appropriateadvertisement to the web client 11

[0044] Bidding agents 30 must be programmed to evaluate proposed bids ina certain amount of time and to submit actual bids to server 320 withinpre-established time limits. If server 320 does not receive a bid from aparticular bidding agent 30 within a certain time, it assumes that itwill not receive a bid from that bidding agent and it selects thehighest bid from the bids received from the other bidding agents.

[0045] The main functionality or the “kernel” of the system isimplemented in the view server 320 and in bidding agents 30. View server320 has a number of tables, and conventional data base functionality forquerying, inserting, updating and deleting data from the tables. Thedata base capabilities may be implemented using a conventionalcommercially available Structured Query Language (SQL) data base such asone of the data bases marketed by Oracle Corp. or the data base marketedby Microsoft Corp. under the tradename “Access”. Alternatively, thesetables can be implemented using specially written programming whichoptimizes the speed of certain operations.

[0046] View server 320 and bidding agents 30 are each objects (in theCORBA or Common Object Request Broker Request sense), they arepersistent, and they can be moved across machine or network boundaries.Naturally performance is impacted depending upon whether or not theseobjects are implemented in one computer or in a network of connectedcomputers. As is conventional, indexing techniques can be used in orderto increase speed of operation related to the various tables.

[0047] The following terms are used herein with the following meaning:

[0048] Ad-Serve: Placing or “pumping” advertising content in an HTTPreply to a view-op. Note, putting advertising content in an HTTP replyresults in an advertisement being displayed by a browser so that it canbe seen by a Viewer.

[0049] Ad-Script: A script or mark up language for establishing biddinglogic.

[0050] Bidding Agent A unit, computer program or agent (in theprogramming sense) that evaluates the characteristics of a view-op todetermine if the criteria or parameters set out in a particular proposedbid meets the specifications of a particular view-op.

[0051] Click-through: The event that occurs when a Viewer clicks on anadvertisement and is hyperlinked to new content.

[0052] Exposure: The number of ad serves for a particular advertisement.

[0053] Frequency: Number of times each viewer (on average) will beexposed to an advertisement. In general the frequency is equal to thetotal number of exposures divided by the reach number.

[0054] I/CODE: A standard identifier assigned to individual viewers.I/Codes are used as registration information by many web sites. InteractProfiles Corporation offers a commercial service which collects in-depthdemographic information about viewers for whom it issues or assignsI/Codes. This information or other similar information about viewers isstored in table 16B.

[0055] Internet: The global information system that is logically linkedtogether by a globally unique address space based on the InternetProtocol (IP). The Internet is able to support communications using theTransmission Control Protocol/Internet Protocol (TCP/IP) suite.

[0056] IP Data: Data about the viewer which is specified using theInternet protocol. The IP data about a viewer is presented to the systemat view-op time in accordance with standard HTTP conventions. The IPdata is defined by standard HTTP conventions and it includes: CGI(common graphic interface) variables, Browser type (e.g. Netscape),viewers URL, high-level domain (.edu, .gov, .com,, OS of viewer (MAC,Windows, etc.), host, IP address, and URL of referring Web page.

[0057] Maximum Bid Price: This is the maximum amount that can bespecified when placing bids on behalf of a bidding agent. (see MinimizeBid).

[0058] Minimize Bid: This is an option that the media buyer (i.e. theperson who buys the advertising) can set on or off (it is set for eachmedia buy). If the option is set “on” then the system will try to bidthe minimum amount necessary to maintain the level of buying that willensure the desired number of impressions during the time allotted to themedia buy. The amount bid will be increased as need to maintain thedesired level of buying; however, it will never be increased beyond themaximum bid.

[0059] Pre-buy: The purchase of the right to display an advertisement inresponse to particular view-ops for a specified amount.

[0060] Proposed Bid: This is an offer to pay a particular amount for theopportunity to provide an advertisement in response to a view-op thathas certain characteristics. If a view op satisfies the criteriaspecified in a proposed bid an actual bid (called a bid) is submitted tothe bid selection logic 16C.

[0061] Reach: The total number of unique viewers the advertiser wants toreach with the media buy. Cannot exceed the total number of exposures.

[0062] Recently Seen Ad Data: Information relating to the most recentadvertisements served to a unique or particular viewer.

[0063] Spot Buy: A decision to purchase a particular view-op for aspecified amount which is made in real time.

[0064] View-op: The opportunity to serve an advertisement to a viewerthat occurs when a web browser makes a request for content byreferencing to a server. This is the basic unit of “perishableinventory” that advertisers buy.

[0065] View-time: The length of time that a viewer looks at anadvertisement.

[0066] Viewer: A person who accesses a page on a web site and receivesan Ad-Serve.

[0067] Viewer History Data: Historical data about a unique or particularviewer. This may include such information as previous viewing habits,purchases, click-throughs, etc.

[0068] Viewer Registration Data: Data collected by a web site (at viewerregistration time) including age, sex, income, etc. The uploading ofthis data to the server data base is performed in non-real-time.

[0069] Web Avail: Seller's inventory, that is, a slot for advertisingcontent. “Avail” is an advertising term. Web avail is the equivalentterm applied to the world wide web.

[0070] Web Page Data: Data concerning a web page such as: keywords,stock categorizations. Also includes (non-real time) thirdparty-supplied data, as well as data provided by the system operatorwith respect to traffic, pricing, etc. concerning a particular site.

[0071] Web Site Demographic Data: This is data about a specific website.

[0072] Web Site: A term conventionally used in connection with the WorldWide Web. Usually an Ad space provider (seller).

[0073] The system utilizes a number of data tables 16B which are storedin the view server 320. The structure of tables 16B are shown innormalized form in FIG. 4. The system also utilizes an area of memoryfor temporarily storing certain information. This area of memory iscalled the VOD area of memory. It should be understood, that as isconventional, some of the data in the tables 16B can be stored inprogram structures and indexes which can then be used to access the datain order to increase speed. For best performance all of the tables 16Bmust be located in RAM.

[0074] As shown in FIG. 4, there are four tables referred to as HUD,SOD, CUD, AAD and one special area of memory referred to as VOD. Thefour tables and the special area of memory are:

[0075] HUD table 408: This table stores Historic Viewer Data. Itindicates which sites each viewer has previously accessed.

[0076] SOD table 409: This table identifies the previously “sold”view-ops. This table tells who previously bought which view-ops.

[0077] CUD table 410: This table identifies viewers and theircharacteristics. .

[0078] AAD table 412: This table identifies every active advertiser.There is a record in this table for every active advertiser.

[0079] VOD area of memory 415: This area temporarily holds data which isbeing transferred to the bidding agents.

[0080] A conventional notation system is used to identify fields herein.Substructures of a main structure are designated by using the name ofthe main structure, followed by a period, followed by the name of thesubstructure. For example CUD.LST means the LST field of the CUD table.

[0081] The fields in the tables shown in FIG. 4 are identified using thefollowing abbreviations: HUD TABLE 408 (Historic Viewer Data, whichsites each viewer has previously accessed) 1) WS Web Site ID Site wheread was placed 2) SP Site Page ID Page where ad was placed 3) CU CurrentViewer ID, this is, who saw the particular web site, the I/Code. 4) TITime Interval 5) N Number of time the viewer CU visited the site in thetime interval TI

[0082] SOD TABLE 409: (who previously bought which view-ops) 1) AA Anidentification of the bidding agent who purchased a view-op. 2) PPPurchase Price Purchase price for this view-op 3) CU Current Viewer IDI/Code of who saw the ad 4) WS Web Site ID where ad was placed 5) SPSite Page ID where ad was placed 6) TS TimeStamp when placed 7) AC AgentContent ID of ad that was placed 8) AJ Agent Jump ID of whereclick-throughs go 9) TSC TimeStamp when click-through happened, (0 fornone) 10) VO View-op ID each view-op has a unique ID..

[0083] CUD TABLE 410 (viewers and their characteristics) 1) LTS LastSeen Time Stamp, that is, time this viewer was last seen by the system2) IP Internet Protocol address (from REMOTE_HOST) 3) DN Domain nameFull Domain name (from REMOTE_ADDR) 4) CO Cookie 5) EA Email Address 6)BT Browser 7) CU I/CODE data 8) ZC Zipcode, 9) PDC Parsed Domain Items1^(st) level, 2^(nd) level, 3^(rd) level parse domain items

[0084] AAD TABLE 412 (identifies active advertisers) 1) BL BudgetLeftCurrent agent's budget remaining 2) CTL ClickThrusLeft Currentclick-through count remaining (number) 3) VL ViewsLeft Current exposurecount remaining (number) 4) TE Time Expired Time expired (i.e. agent is“dead” or expired if not 0) 5) AA An identification of the bidding agent

[0085] VOD memory area 415: This is a data communication structure inmemory that facilitates passing data between objects.. When a view-op isreceived, data is placed in the VOD area and then transmitted to thebidding agents. As an example, the following data can be placed in theVOD for transmission to the bidding agents.

[0086] 1) Current Viewer Data CO Cookie—gives information about theviewer that initiated the view-op. EA Email Addr. of viewer thatinitiated the view-op. C I/Code of viewer that initiated the view-op. TSTimeStamp Last Seen Time Stamp IP Internet Protocol information FullDomain Name (e.g. “sales.gm.uk”) Parsed Domain Name (e.g. Top = “uk”,2^(nd) = “gm”, 3^(rd) = “sales”) I/CODE plus associated data Zipcode* BTBrowser type (e.g. “Mozilla / Unix 4.0”) VO View Op ID CT Content Type,Identifies a particular type of ad that site will accept.

[0087] 2) Data About Advertisers

[0088] Original and Current budget

[0089] Original and Current Views budget

[0090] Original and Current Click thru budget

[0091] Time-Start/End

[0092] advertiser ID

[0093] 3) Site Data

[0094] Keywords which appear on site

[0095] Site Page Ad Minimum Price

[0096] Accepts content List (what will site accept e.g. java, gif;sizes)

[0097] Site Owner Name

[0098] Site URL

[0099] Site Title

[0100] Site Intra Page Title

[0101] 4) Historic and other data from data base 16B: This is the VODXarea 415A: This is a subset of the VOD structure and it is a subset ofdata that is in the CUD, AAD, HUD and SOD. The data in the VODX istransmitted to the bidding agents on each view-op. The data placed inthe VODX can for example be:

[0102] a) CUD Record Portions: Portions of CUD that exist such asdomain, browser, I/code relative to a viewer associated with a view-op.

[0103] b) 100 SOD records where SOD.WS.SP=VOD.WS.SP That is, where sitepage and web site in SOD equal site page and web site in the VOD.

[0104] c) 100 SOD records where Customer ID (i.e. I/Code) in SOD equalsCustomer ID in VOD That is, sold view-op records for this Viewer.

[0105] d) 100 HUD records: most recent records for this CU, WS and SP.

[0106] In the above example, the historical data is in units of onehundred records. It should be understood that the number of historicalrecords sent to the bidding agents, is established by determining thetype of specification which advertisers want to put in proposed bids. Ifadvertisers want to base the decision on whether or not to submit anactual bid on the data in more than 100 historical records, the numberof historical records placed in the VOD must be larger than 100.Alternatively, in a low cost system which has a limited amount ofmemory, and relatively slow speed communication, the data selected forinclusion in the VOD could be less than the data listed above.

[0107] The data in the VOD is provided to the bidding agent 30 at everyview-op. The bidding agents 30 can use this information to make a buydecision by comparing the criteria specified in a proposed bid with thecharacteristics of a view-op. All of the data that is listed above willnot be available for each view-op. If certain data (i.e. data in aparticular field) is not available relative to a particular view-op anda proposed bid requires that the data in the particular field have aparticular value, no actual bid will be submitted by the bidding agentwhen the proposed bid is evaluated. The list of information or data inthe VOD as given above is illustrative and any available informationwhich advertisers feel is relevant to making buy decisions can beprovided.

[0108] Some of the data in tables 16B is collected as the systemoperates. Other information such as information about viewers can bepurchased from commercial information providers and periodicallyinserted into the tables 16B from an external connection.

[0109] On each view-op, that is, when each view-op occurs, biddinginformation is presented to each of the bidding agents 30. When abidding agent 30 receives information about a view-op, it evaluates theview op with respect to the criteria specified in a particular proposedbid and the bidding agent then either does nothing or returns to server320 a bid with a price and an identification of an ad to display if thebid is accepted. When a bidding agent receives information about aview-op each bidding agent 30 performs comparison operations such asthose shown in block diagram form in FIG. 5.

[0110] The bidding agents may be computer programs written inconventional computer languages. For example a bidding agent 30 may be aprogram in interpreted form, in script language (for evaluating proposedbids that are in Ad Script form) or a bidding agent may be a previouslycompiled program. The exact form of the bidding agents is notparticularly relevant to the present invention provided that the biddingagent perform comparison operations such as those shown in FIG. 5. It isalso noted that the bidding agents may be complex computer programs thatperform various complex comparison operations in addition to or in placeof the operations shown in FIG. 5. However, in the preferred embodimentof the invention, the bidding agents are simple conventional computerprograms that perform the type of comparison operations shown in FIG. 5.

[0111] During the normal operation of the system, the process beginsupon receipt of a view-op from the browser 11. Upon receipt of a view-opthe system does the following:

[0112] 1) An attempt is made to identify the viewer via HTTP connectinformation. The system seeks to determine if this viewer has been seenbefore. This is done using conventional and well know HTTP protocoltechniques, the data in data base 16B and conventional data basetechnology.

[0113] 2) The data concerning the viewer is used to update the table'sCurrent Viewer Data (table 410) relative to this view-op's viewer.

[0114] 3) A view-op object (VOD 415) is transmitted to each biddingagent 30.

[0115] 4) The bidding agents 30 determine if the view-op meets therequirements of various proposed bids.

[0116] 5) Bids are collected from the bidding agents 30 and adetermination is made as to the winning bid.

[0117] 6) The winning bid includes an ad index identifying the ad to bedisplayed. This ad index which identifies an ad in table 16A istransmitted to the web server 310 and the appropriate ad is sent to thebrowser 11.

[0118] 7) The tables 16B are updated as to the view-op just bought (asto all view-op data of the just sold item including Historic Viewer Datasuch as Site, Viewer, Time seeing this exposure, etc.).

[0119] 8) Log and billing information is transmitted to a log andbilling unit.

[0120] Time Path: The following describes the time sequence ofoperations that occur when a HTTP view-op request arrives from the webserver 310. This can be a multi-threaded operation, that is, multiplerequests might be processed simultaneously; they each maintain their owncontext and depend on the basic operating system (OS) for time slicing.This describes the time sequence for processing one view-op request. Thefollowing description uses symbolic values for time.

[0121] Time0:

[0122] HTTP view-op request packet received

[0123] Extract HTTP variables from HTTP request: HTTP Query String(PATH_INFO) WS SP HTTP_VIEWER_AGENT HTTP_ACCEPT REMOTE_HOST == domainREMOTE_ADDR (IP) REMOTE_VIEWER REMOTE_DENT HTTP_REFER

[0124] Time1:

[0125] Lookup in CUD and try to match viewer

[0126] If success save CU and update Last Seen TimeStamp

[0127] If failure

[0128] Create new CU;

[0129] insert a new CUD record

[0130] Time2:

[0131] Create & build VOD object (contains view-op data for biddingagents) for the view-op.

[0132] Time3:

[0133] Lookup last N (i.e. 100) SOD records for CU, and save in VOD

[0134] Time4:

[0135] Lookup last N (i.e. 100) HUD records for CU.SW.SP, save in VOD

[0136] Time5:

[0137] Remember VO ID and initiate a time-out.

[0138] Time 6:

[0139] Transmit VOD to all bidding agents.

[0140] After the VOD data is transmitted to the bidding agents 30, thebidding agents 30 evaluate proposed bids and if appropriate sentmessages (bids) to view server 320. These messages will be bid objectdata (bid price and ad ID). View server 320 collects the bids andselects the highest bid. (This is done by bid selection logic 16C inview server 320 which compares each bid received with the current winnerof the bid compete process until no further bids are received).

[0141] Time7:

[0142] Transmit winning ad index (that is the ad index from the winningbid) to web server 310. The ad-index indicates which of the ads in table16A is to be transmitted to browser 11.

[0143] Time8:

[0144] Update table 16B (as to the view-op just bought);

[0145] Time9:

[0146] Insert in SOD view-op Data (as to all view-op data of the justsold item);

[0147] Time 10:

[0148] Update or Insert Historic Viewer Data (as to Site, Viewer, Timeseeing this exposure).

[0149] Time 11:

[0150] Transmit Log/Billing information to the Log and billing unit320A.

[0151] Proposed bids are submitted to bidding agents 30 by bid inputunit 18. Each proposed bid, which is submitted in the form of aprogramming Form Object, contains data fields such as the data fieldslisted below. A particular proposed bid may not have data in each of thefields of the associated Form Object. Furthermore one proposed bid maycontain multiple Form Objects. That is, an advertiser may submitmultiple form objects at multiple levels. For example, an advertiser mayspecify a level one proposal of five cents if one particular set ofcriteria are met and a level two proposal of four cents if othercriteria are met. Each proposed bid (i.e. each form object) may containa wide range of criteria that must be satisfied if an actual bid is tobe placed. The criteria may be very stringent in a situation where theproposed bid is high and the advertiser wants to reach only a veryselect group of viewers. On the other hand the criteria may be loose ifthe bid is low and the advertiser wants to reach a large number ofviewers who meet only a minimum set of criteria. For example, a proposedbid might have the single criteria such as that the view-op is from aviewer that is using the “Netscape browser”. Alternatively a proposedbid might specify values for items “a”, “b”, “c”, “e”, “g”, “h” and “i”listed below and specify that these values must be met before a bid issubmitted for this advertiser.

[0152] Another example is that a bid might specify a set of criteria anda list of ads that are to be displayed in sequence each time aparticular viewer who meets the criteria is encountered. Such a list isreferred to as a “rotation” of ads. A proposed bid might also specifythat after all the ads in a rotation are displayed to a viewer, thereshould be a specified delay before the viewer is again shown the ads inthe rotation.

[0153] As an example, each form object may have the following fields(naturally it should be understood that these are merely illustrativeand the number and description of actual fields is merely limited by theadvertiser's desires concerning what criteria the advertiser cares tospecify in a proposed bid.):

[0154] a) Frequency: that is, the number of Ad serves for one uniqueviewer of this ad

[0155] b) Include sites list (those sites that are acceptable to theadvertiser)

[0156] c) Exclude sites list (those sites that are not acceptable to theadvertiser)

[0157] d) Maximum bid . . . (in no event can the bid be larger than thisamount)

[0158] e) Keywords for site (words that must be in the site if a bid isto be submitted)

[0159] f) Keywords for site-page (words that must be on the page)

[0160] g) Times: Dayparts/Weekparts (when can ad be placed)

[0161] h) Viewer OS (operating system viewer must have)

[0162] i) Viewer Zipcode

[0163] j) Viewer US State

[0164] k) Viewer Domain (.com, .edu, .gov, mil, .org)

[0165] I) Viewer ISP

[0166] m) Viewer Country

[0167] n) Viewer SIC code

[0168] o) Viewer # of employees

[0169] p) Viewer Annual Revenues.

[0170] q) Viewer Browser (what browser viewer must have)

[0171] r) Inter-ad Delay (minimum time between placement of ads to aparticular viewer)

[0172] s) Rotation Delay (delay between placement of ads which are partof a series)

[0173] t) List of ads in a rotation . . . (a list of ads that are placedin sequence see example below)

[0174] u) Other (Other criteria that advertiser may care to specify.Naturally, the bidding agent which receives a proposed bid must beprogrammed to compare the criteria specified in a bid to the dataavailable concerning a view-op)

[0175] Bidding input server 18 includes a conventional data inputprogram that allows entry of proposed bids with fields such as thoselisted the above. Each proposed bid is transmitted to a bidding agent30. There is one bidding agent 30 for each proposed bid that issubmitted. A system may include thousands of bidding agent programs 30.It should be understood that bidding agents 30 are conventional computerprograms that evaluate proposed bids against the characteristics of aview-op to determine if a bid should be submitted to view server 320.

[0176] Bid input system 18 also transmits information to view server320. For example the budget and identity of each advertiser istransmitted from bid input server 18 to AAD table 412. Entry, transferand storage of such information is done using conventional data basetechniques.

[0177] In the particular embodiment of the invention shown herein, thebidding agent programs 30 perform the operations shown in FIG. 5relative to each level of each proposed bid. As previously indicatedeach proposed bid may include several bid levels. All of the aboveelements are repeated in each element. The process shown in FIG. 5 isexecuted for each level of each proposed bid. The Level 0 level is “run”first, the Level 1 next, and so on. This means that level 0 requirementsare evaluated first. If they succeed, the bid is placed as dictated inthat level's data. Otherwise Level 1 requirements are checked, and soon. Each level's requirements can be totally independent, but preferablythey should get successively less strict, such that the proposed bidvalue decreases.

[0178] The program shown in FIG. 5 is executed for every view-op. Itfirst uses the specifications for Level 0, then on “NEXT,” or a failureto meet criteria for a level, it starts over with the next level'scriteria. The proposed bid evaluation program shown in FIG. 5 performstests such as the tests shown below upon a proposed bid prior tosubmitting an actual bid to view server 320. It should be understoodthat the test below are merely illustrative and any variety of tests canbe performed in comparing the characteristics of a view-op with thespecifications in a proposed bid. The tests required is limited solelyby the desires of the advertiser. Programming for performing such testsand comparisons between specified characteristics of a view-op andspecifications in a proposed bid is conventional programming. In theillustration given in FIG. 5, the following tests are performed by thebidding agent program.

[0179] Block 501: If Include site List is specified and WS (Web Site ID)is not in Include site List go to DONE, if not go to next test.

[0180] Block 502: If Exclude site List specified and WS (Web Site ID) inExclude site List go to DONE, if not go to next test.

[0181] Block 503: If Browser specified and no match with Browser beingused, go to DONE, if not go to next test.

[0182] Block 504: If MIN site bid<MAX Agent bid go to DONE, if not go tonext test (note that a web site can specify a minimum amount (Min sitebid) that the site will accept for displaying an advertisement).

[0183] Block 505: If Viewer OS specified and no match go to DONE, if notgo to next test.

[0184] Block 506: If Viewer Zipcode specified and no match go to DONE,if not go to next test.

[0185] Block 507: If Viewer US State specified and no match go to DONE,if not go to next test.

[0186] Block 508: If Viewer Domain specified and no match go to DONE, ifnot go to next test.

[0187] Block 509: If Viewer ISP specified and no match go to DONE, ifnot go to next test.

[0188] Block 510: If Viewer Country specified and no match go to DONE,if not go to next test.

[0189] Block 511: If Viewer SIC code specified and no match go to DONE,if not go to next test.

[0190] Block 512: If Viewer# of employees specified and no match go toDONE, if not go to next test.

[0191] Block 513: If Viewer Annual Revenues specified and no match go toDONE, if not go to next test.

[0192] Block 514: If Time List specified and current time not in TimeList go to DONE, if not go to next test.

[0193] Block 515: If Keywords list specified and Keywords not in SiteKeywords List go to DONE, if not go to next test.

[0194] Block 516: If MAX Agent click-through bid specified and MIN siteclick-through bid then if MIN site click-through bid<MAX, Agentclick-through bid go to DONE, if not go to next test.

[0195] Block 517: If No CT (content type) match in Ad list go to DONE,if not go to next test.

[0196] Block 518: If InterAd Time Interval specified then Compute (block519) (scan for) LastAdViewer for this CU (Last time this viewer saw anad fulfilled from this agent) from SOD List of 100.

[0197] Block 520: If InterAd Time Interval and if TimeStamp ofLastAdViewer<Inter Ad Time Interval go to done, if not go to next test.

[0198] Block 521: If Frequency specified perform block 522, that is,Count (scan) SOD per CU for ads sold by this agent. (Block 522A) If thiscount>Frequency go to DONE, if not go to next test.

[0199] Block 523 If no LastAdViewer (no record of serving this Viewer)go to done, if not go to next test.

[0200] Block 523A if InterAdTimeInterval specified then if TimeStamp ofLast Ad Serve<Inter Ad Time Interval go to DONE, if not go to next step.

[0201] Block 524: TRY TO BUY AD with the following steps:

[0202] Block 525: Select Next Ad to Serve based on CT match,LastAdViewer or Last Ad Served

[0203] Block 526: Submit BID: Include in the bid submitted to viewserver 320, the ad ID in the form of an index that can be used by webserver 310 to select a bid from ad table 16A for display.

[0204] Block 528: The process is DONE

[0205] The process that the web server 320 follows when it receives aview-op is shown in FIGS. 6A to 6E. The process includes the followingsteps:

[0206] Begin Process FIG. 6A:

[0207] Block 601: The process begins when the view server 320 receivesaViewOpDrive₍₎ call. That is when Raw view-op Data is sent to viewserver 320.

[0208] Block 605: Establish an area in memory for VOD structure (we willwrite to this area)

[0209] Block 606: Parse the Domain

[0210] Block 607: Parse Accepts (map this to CT)

[0211] Block 608: Parse the Browser field

[0212] Block 609: Write SP, WS, and Cookie to the VOD

[0213] Block 610: Create New view-op record in SOD

[0214] Block 611: Write available information about view-op to newrecord in SOD

[0215] Block 612: Write TS to SOD

[0216] Block 614: Check to see If Cookie=0 (Is there a Cookie in therequest)

[0217] Block 615: If Cookie=0 select on CUD where there is a Cookiematch

[0218] Block 616: If Cookie not=0 Select on CUD using other heuristicsof viewer

[0219] Block 617: Set (or clear) VOD.CU

[0220] Block 620: check if there is a current viewer.

[0221] Block 621: if CU=0 Insert new viewer in CUD

[0222] Block 623 Insert the new CUD rec. in CUD

[0223] Block 622: Write CUD record to VOD

[0224] Block 630: Select from SOD where CU=VOD.CU for 100 order by TSinto VOD and go to next procedure. This selects the 100 most currentpurchases that were presented to the particular viewer. Write to VOD

[0225] Block 631: Select from HUD where CU,SP,SW all match for 100 mostrecent records in VOD. Write to VOD

[0226] Block 632: Select from AAD for every active budget. Write to VOD(Write any other data needed by bidding agents to VOD)

[0227] Block 634 Send VOD data to Bidding Agents. Each bidding agent runits logic (see FIG. 5)

[0228] Block 635: Bidding agents send result to View Server 320 (Thisfollowing is the process where bid selection logic 16C in view server620 picks the best bid)

[0229] Block 641: Pick maximum bid

[0230] Block 642: Update AAD data

[0231] Block 643 Check for expiration of bidding agent in AAD table

[0232] Block 644: Set VOD info to winner and go to next procedure.

[0233] Block 645: check if CUD exceeds its maximum.

[0234] Block 646 if block 645 answer is yes, Select oldest CUD record,Post it to a CUD archive file.

[0235] Block 650: check if CUD>MAXSIZE.

[0236] Block 651: If block 650 answer is yes, Delete oldest CUD recordand proceed.

[0237] Block 653: Compose the SOD record from VOD data.

[0238] Block 654: Insert SOD record.

[0239] Block 655: check if count of SOD records>MAXSIZE: if no go tonext procedure.

[0240] Block 656: If block 655 answer is yes, Select oldest SOD record,POST it to an archive file and go to next procedure.

[0241] Block 660: check if count of SOD records>MAXSIZE, if answer isno, go to next procedure

[0242] Block 661: If answer to block 660 is yes, delete oldest SODrecord.

[0243] Block 662: Select from HUD for CU, SP, SW, current time interval.That is, select for this current viewer, for this bidding agent, on thisweb site, for this time interval.

[0244] Block 663: Write data to VOD and go to next procedure.

[0245] Block 664, Check if HUD Rec==0 That is, if HUD record was found

[0246] Block 665, If no HUD record found, Insert New HUD rec.

[0247] Block 666: If HUD record was found, Update existing HUD rec.

[0248] Block 670: check if new Hud Rec was inserted and count>MAXSIZE.

[0249] Block 671: If answer to block 670 is yes, Delete oldest HUD rec.

[0250] Block 672: Create Accounting Rec. from VOD data.

[0251] Block 673: POST the data to an archive file

[0252] Block 674: Post ad info to web server 310. That is, tell webserver 310 which ad to display.

[0253] Block 675: Dequeue, Delete the VOD. This is the end of theprocedure. It starts again at the next view-op.

[0254] The series of steps shown in FIGS. 6A to 6S are the proceduraloperation performed by the view server 320. These can be programmedusing any of the conventional programming languages such as SQL. Theparticular computer used to perform the program is of no particularconsequence so long as it is fast enough to provide a reasonable degreeof performance. In order to speed the operation of the system if thereis a large number of bidding agents 30, the bid selection logic 16C maybe implemented using hard wired logical circuitry rather than byutilizing a computer program. The programming or circuitry in bidselection logic 16C is conventional. It merely receives the bids fromeach of the bidding agents 30 and selects the highest bid and thentransfers the ad index for this bid to web server 310 and transfersother information about the bid to the data tables 16B and to log andbilling unit 320A.

[0255] Web Server 310: The web server 310 is a conventional web serverwhich is programmed to provide two main functions:

[0256] 1) Answer and hold the state of each HTTP request; deliver theview-op to the system kernel in view server 320; receive the systemkernel reply and deliver the content. This is a multi-task operation.The contents (the IP data) of each view op, along with its type (eithera request for content or a click-through) are delivered to the viewserver 320. This communication is through shared memory or alternativelyit may be through a conventional inter-computer network.

[0257] 2) Install and remove Ad content separately, and asynchronously.Service requests to install (store) and remove (delete) ads from database 16A. On an install, the web server returns a WC, a handle or indexto the location of the ad. WCs should be unique for the life of thesystem. This is done by a conventional data base program.

[0258] Bid input server 18 is a conventional data base server whichaccepts information and delivers it to the tables in view server 320 andto bidding agents 30. Bid input server 18 provides a data inputmechanism for the system. Data table 18-T in bid input server 18 storesthe identity of each of the advertisers and the particular biddingagents 30 to which bids from that advertiser should be sent. Biddingagents 30 can all be identical or alternatively some may have capabilityfor evaluating more complex criteria in proposed bids. The data table18T stores information which indicates which bidding agent shouldreceive proposed bids from which advertisers. Bid input Server 18 is aconventional data base input unit.

[0259] The log and billing unit 320A is a conventional data base programthat provides conventional log and billing functions. As concerningusers and web sites becomes old and stale, it is transmitted to anarchive in log and billing unit 320A. A log of all transactions thattakes place in the system is also maintained by unit 320A. This is doneusing conventional programming techniques.

[0260] In the figures, only one web browser 11 is shown. It should beunderstood that web browser 11 is merely representative of the webbrowsers connected to the Internet world wide web. Web server 310 isconnected to the Internet and hence it can receive HTML references fromany of the millions of browsers connected to the Internet. Web browser11 is merely illustrative of one of the browsers connected to theInternet.

[0261] The specifics of the various data bases, the specifics of thevarious fields in the data bases, and the specifics of the form used tosubmit a bid, the parameters that are considered in evaluating bids, asshown herein are illustrative only and various changes in the databases, the fields and the parameters along with changes in the operationof these details of the system could be made without departing from thespirit and scope of the invention.

[0262] Specific data can be introduced into data base 16B in a number ofways. Some of the data is collected as previously described as thesystem operates. Other data can be viewer registration data, that isdata obtained when viewer register at related web sites. Likewise viewerhistory data in data base 16B can be collected as the system operates orit can be purchased from commercial sources and entered into data base16B as a batch of information. Web site demographic data can becollected from commercially available sources and entered into data base16D.

[0263] The specific data collected in data base 16B is determined by thecriteria that advertisers want to establish in proposed bids. Data base16B can store any type of information that advertisers care to specifyin proposed bids. Any data that advertisers want to us in settingspecifications in proposed bids can be stored in tables 16B usingconventional data base technology. This data is transferred to the VODarea of memory and to the bidding agents 30 when a view-op occurs.Bidding agents 30 must be programmed to compare the data received fromthe VOD to the specifications in a proposed bid to determine if anactual bid should be submitted.

[0264] It is herein assumed that a viewer always accesses the world wideweb using the same browser, so that the cookie in a browser accuratelyreflects what a viewer has done. It is also assumed that only one vieweruses a particular browser, again so that the cookie in the browseraccurately reflects what the particular viewer has done. If differentindividuals use different sign-on names with the same browser, or ifdifferent individuals who use the same browser otherwise identifythemselves to the system, they can be assigned separate I/codes eventhough they use the same browser..

[0265] It is also noted that a system could combine the operation of thepresent invention with the operation of the prior art type of systemwhere access to advertising on particular web sites is sold for aspecified amount. An operator of the system could sell “pre-buys”, thatis, access to the view-ops that occur on a particular site and theoperator could insure that a particular advertiser always has access tothese view-ops as done by the prior art systems. This could be done bymerely entering into the system proposed bids with a value that is themaximum allowed by the system for those particular view-ops that aresold as pre-buys.

[0266] An alternative embodiment of the invention is shown in FIG. 7.The system shown in FIG. 7 is designed to minimize latency due toInternet topographical distance between units.

[0267] The embodiment shown in FIG. 7 is a geographically distributedsystem which includes three systems 716A, 716B and 716C each of whichare identical to systems 16 shown in FIGS. 1 and 3. Each of the systems716A, 716B, and 716C have associated bidding agents 730A, 730B and 730C.Each of the systems 716A, 716B and 7126C is located a differentgeographic area.

[0268] Client browser 711 sends web HTML references (such as those sentfrom browser 11 to web server 310) to a commercial Internet serviceprovider (an ISP) 712. The ISP in turn sends an HTML reference to thesystem 716A, 716B or 716C which is “topographically” closest to thebrowser 711. For example, the three systems 716A, 716B and 716C could belocated on different continents, one in the U.S., one in Europe and onein Japan. With the system shown in FIG. 7, HTML references from browsersin Europe would be directed to the system in Europe, HTML referencesfrom browsers in the U.S. would be directed to the system in the U.S.etc. The bid input unit 718 sends each proposed bid to bidding agents730 associated with each system. Thus, the systems 716A, 716B and 716Cevaluate each proposed bid against the particular view-ops that aredirected to each particular system. While for purposes of illustration,three systems 716A, 716B and 716C are shown, any number of such systemscould be connected in an overall network of systems.

[0269] While the invention has been shown and described with referenceto preferred embodiments thereof, it should be understood that otherembodiments are possible and that various changes in form and detail maybe made without departing from the spirit of the invention. The scope ofthe invention is limited solely by the appended claims.

I claim:
 1. A system for supplying advertisements for display during aseries of viewing opportunities (view-ops) which occur during thedisplay of web pages on the Internet world wide web, each of saidview-ops having specific characteristics, a plurality of bidding agents,a server for providing information concerning each view-op to saidbidding agents, a bid input system for providing proposed bids to saidbidding agents, each proposed bid including, a reference to a specificadvertisement, specifications of a desired view op and a monetary amountwhich will be paid for displaying said specific advertisement inresponse to a view-op which meets said specifications of a desiredview-op, each of said bidding agent including logic for submitting a bidand a reference to a specific advertisement to said server if theinformation concerning a view-op satisfies the specifications of adesired view-op contained in a proposed bid, and said server includingbid selection logic for selecting the highest bid submitted by a biddingagent and for transferring the advertisement referenced in said highestbid to the web site presenting said view-op.
 2. A server system forproviding advertisements in response to HTML references from a web page,each HTML reference includes information identifying the source of saidweb page, said server system including, a data base of advertisements, adata base of viewer information including information concerning priorHTML references, means for accepting proposed bids which specify amonetary amount for providing a particular advertisement in response toweb page HTML references which satisfy specified criteria, saidspecified criteria including information included in said HTML referenceand information from said data base of viewer information, means fordetermining if a particular HTML reference satisfies said specifiedcriteria, means for selecting the highest bid which satisfies saidspecified criteria, and means for responding to said HTML reference withthe particular advertisement specified by said selected bid.
 3. A systemfor placing advertisements on web pages on the world wide web which areaccessed by a viewer, a first server which stores advertisements, saidweb pages having HTML references to said first server, a data base ofinformation on viewers, bid input means for accepting bids to placeadvertisements on web pages which have particular characteristics andwhich are accessed by viewers having particular characteristics, and bidselection means for selecting the highest bid for placement of anadvertisement on a particular web page.
 4. A system for displayingadvertisements to viewers who access a web page comprising a web serverwhich stores a plurality of advertisements, bid input means forproviding to said system bids specifying characteristics of users andweb sites where it is desired to display advertisements and a dollar bidfor the right to display an advertisement on a site with the specifiedcharacteristics a server system which includes means for evaluatingbids, for selecting one of said advertisements in response to said bidsand for designating to said web server which of said advertisementsshould be displayed, whereby the particular advertisement that isdisplayed to a viewer is determined by a bidding process.
 5. In anInternet which is operating according to the HTTP protocol, and whichincludes a browser for viewing web pages and for HTML referencing toremote servers, a server which has stored therein a number ofadvertisements, means for providing to said system bids for theopportunity to display advertisements on web pages which have beenaccessed by a viewer having specified characteristics, selection meansfor evaluating said bids and comparing them to the characteristics of aviewer that accesses a web page, said selection means including meansfor selecting the highest bid for a particular view-opportunity.
 6. Amethod of placing advertisements on web pages on the world wide webwhich are accessed by a viewer utilizing a browser, storingadvertisements in a data base on a first server, said web pages havingHTML references to said first server, maintaining a data base ofinformation on viewers, accepting bids to place advertisements on webpages which have particular characteristics and which are accessed byviewers having particular characteristics, selecting the highest bid forplacement of an advertisement on a particular web page.
 7. A system forplacing advertisements on web pages on the world wide web, said webpages being accessed by viewers, each viewer utilizing a browser, afirst server which stores advertisements, said web pages having HTMLreferences to said first server, a data base of information on viewersand on the web sites that have been accessed by particular browsers, bidinput means for accepting bids to place advertisements on web pageswhich have particular characteristics and which are accessed byparticular browsers which have been previously used to access web pageshaving particular characteristics, bid selection means for selecting thehighest bid for placement of an advertisement on a particular web pagewhich has particular characteristics and which has been accessed by abrowser which previously has accessed particular web sites.
 8. Thesystem recited in claim 7 where said world wide web is accessed by usingHTTP protocol on the Internet.
 9. A system for determining whichadvertisement to place on a web page that has been accessed by a viewerusing a browser, a first web server which has stored thereonadvertisements, said web page having a HTML reference to said first webserver, a client server which provides means for entering bids to placeparticular advertisements on particular web pages which have particularcharacteristics and which are accessed by particular browsers which havepreviously accessed particular web pages, a viewer data base which hasinformation concerning which web pages have been accessed by particularbrowsers, a view server which evaluates the bids which have been enteredand selects the highest bid for displaying an advertisement on aparticular web page.
 10. The system recited in claim 9 including aserver which includes means for checking bids to determine if web pagemeets the specifications in a particular bid.
 11. The system recited inclaim 9 wherein a determination of which advertisement to place on aparticular web page in done in machine real time and said bids areentered in human real time.
 12. The system in claim 9 wherein saidviewer data base includes information about viewers.
 13. A method forplacing advertisements on web pages on the world wide web, said webpages being accessed by viewers, each viewer utilizing a browser,storing advertisements on a first server, said web pages having HTMLreferences to said first server, storing a data base of information onviewers and on the web sites that have been accessed by particularbrowsers, providing bids to place advertisements on web pages which haveparticular characteristics and which are accessed by particular browserswhich have been previously used to access web pages having particularcharacteristics, selecting the highest bid for placement of anadvertisement on a particular web page which has particularcharacteristics and which has been accessed by a browser whichpreviously has accessed particular web sites.
 14. The system recited inclaim 1 wherein each view-op has an associated viewer and said serverincludes a data base of information concerning viewers.
 15. The systemrecited in claim 1 wherein said server includes a data base withinformation about web sites.